Deduplicating data systems are often able to reduce the amount of storage space needed to store files by recognizing redundant data patterns. For example, a conventional deduplicating data system may reduce the amount of storage space needed to store similar files by dividing the files into data segments and storing only unique data segments. In this example, each deduplicated file stored within the deduplicating data system may be represented by a list of mapped locations (references) to those data segments that make up the file.
Within telephony or computer networks, data centers used to house telecommunication and storage systems provide differing tiers associated with a quality of service (QoS) to users, where QoS is the ability to provide different priority to different applications, users, or data flows, or to guarantee a certain level of performance to a data flow. For example, a required bit rate, delay, jitter, packet dropping probability and/or bit error rate may be guaranteed. When network capacity is insufficient, QoS guarantees are vital for various real-time streaming multimedia applications, such as voice over IP, online games, IP-TV, and the like. These applications often are delay sensitive and as a result, require a fixed bit rate. Further, in networks, bandwidth capacity may be a limited resource in cellular data communication, for example.
In particular, within a storage environment associated with a network, QoS performance isolation may be provided by guaranteeing a certain bandwidth assigned to an application, file, client, and the like. For example, credits may be granted to each application based on a Service-Level Agreement (SLA), underlying storage capacity, and demand, where the SLA is a standardized service contract that formally defines the scope, quality, responsibilities associated with the service. However, current storage QoS solutions do not account for deduplicated I/O requests, where the underlying storage stack within a storage controller for a storage area network uses deduplication.
While conventional deduplicating data systems may reduce the storage space required to store files, the mechanisms used by such conventional systems to manage deduplicated data fail to account for the amount of data that has been deduplicated. Further, in a traditional file system, large amounts of deduplicated data may exist when processing Input/Output (I/O) requests, such as read or write requests. Yet, these I/O requests may be queued based upon the initial bandwidth assigned to the application without giving account of the deduplicated data or the current bandwidth available. However, due to the deduplication process, there exists extra storage bandwidth, which is not taken into account when allocating I/O requests. That is, conventional systems do not account for additional storage bandwidth resulting from a deduplication, which could be allocated based upon the SLA agreement, where storage is allocated on different tiers. For example, if an application has a dedupe ratio of 50%, then it actually uses only 50% of its assigned bandwidth. Yet, current QoS solutions have no mechanism to account for the dedupe ratio which is application dependent. This results in underutilization of the underlying storage, where the dedupe ratio of the application is proportional to the loss or underutilization of storage. It is within this context that the embodiments arise.